package nl.hu.verbrandendephoenix.client;

import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.NotificationMole;
import com.google.gwt.user.client.ui.RootPanel;

public class NotificationManager extends NotificationMole {
	
	private static NotificationManager nm;
	
	private NotificationManager() {
		super();
	    this.setAnimationDuration(250);
	    this.setWidth("100%");
	    this.setHeight("50px");
	    RootPanel.get("notification").add(this);	    
	}
	
	public static NotificationManager get() {
		if(nm == null) nm = new NotificationManager();
		return nm;
	}
	
	public void createNotification(String text) {
		this.setMessage(text);
		run(5000);
	}
	
	public void createNotification(String text, int time) {
		this.setMessage(text);
		run(time);
	}
	
	public void run(int showTime) {
		this.show();
	    Timer t = new Timer() {
			@Override
			public void run() {
				nm.hide();				
			}
		};
		t.schedule(showTime);
	}
	
	
	/*
	 * Error messages
	 */
	public void commError() {
		createNotification("Could not connect to server. Contact support if this problem persists.");
	}
	
	public void SID_Invalid() {
		createNotification("Session timed out. please log back in.");
	}
	
	public void fieldCheck() {
		createNotification("U heeft niet alle velden correct ingevuld.");
	}
	
	public void AuctionCheck(int i) {
		if(i == 1) {
			createNotification("Veiling naam moet minimaal 5 tekens bevatten");
		}
		if(i == 2) {
			createNotification("Veilingnaam mag maximaal 32 tekens bevatten");
		}
		if(i == 3) {
			createNotification("Selecteer een categorie");
		}
		if(i == 4) {
			createNotification("Omschrijving moet tenminste 10 tekens bevatten");
		}
		if(i == 5) {
			createNotification("Omschrijving mag niet meer dan 1000 tekens bevatten");
		}
		if(i == 6) {
			createNotification("Vul het minimumbod in als heel getal");
		}
		if(i == 7) {
			createNotification("Vul een minimumbod in");
		}
	}
	
}
